9.17 软件测试作业 发表于 2019-03-14 | 分类于 软件分析与测试 12345题目要求:一、请构造一个尽可能简单的数值计算小程序P和两个测试用例t1和t2以及两个Fault(F1, F2)满足以下要求: 1、在P中注入F1得到程序P1,使得t1 fail;2、在P中注入F2得到程序P2,使得t2 fail;3、在P中注入F1和F2得到程序P3,使得t1和t2都pass。 分析:设计一个累加正数的程序,读到正数就累加,最后输出 ##1 正确程序: 123456789101112131415161718#include<iostream.h>/** 程序用来求4个数中 大于0部分的和,下面是正确程序* 用例1: {-1,-2,1,2} 结果3* 用例2: {-7,-1,8,0} 结果8*/void main(){ int a[4]; int s=0; for(int i=0;i<4;i++) { cin>>a[i]; if(a[i]>0) s+=a[i]; } cout<<s<<endl;} 测试截图: 2 fault1:1234567891011121314151617/** 程序用来求4个数中 大于0部分的和,下面是fault1程序,修改if部分小于号* 用例1: {-1,-2,1,2} 结果-3 错误* 用例2: {-7,-1,8,0} 结果-8 错误*/void main(){ int a[4]; int s=0; for(int i=0;i<4;i++) { cin>>a[i]; if(a[i]<0) s+=a[i]; } cout<<s<<endl;} 3 fault2:1234567891011121314151617/** 程序用来求4个数中 大于0部分的和,下面是fault2程序,修改累加部分符号* 用例1: {-1,-2,1,2} 结果-3 错误* 用例2: {-7,-1,8,0} 结果-8 错误*/void main(){ int a[4]; int s=0; for(int i=0;i<4;i++) { cin>>a[i]; if(a[i]>0) s-=a[i]; } cout<<s<<endl;} 3 fault1与fault2:1234567891011121314151617/** 程序用来求4个数中 大于0部分的和,fault1 fault2 全改* 用例1: {-1,-2,1,2} 结果3* 用例2: {-7,-1,8,0} 结果8*/void main(){ int a[4]; int s=0; for(int i=0;i<4;i++) { cin>>a[i]; if(a[i]<0) s-=a[i]; } cout<<s<<endl;}